home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 1333 / 1333.xpi / install.js < prev    next >
Text File  |  2010-02-14  |  3KB  |  79 lines

  1. var XpiInstaller =
  2. {
  3. extFullName: 'Quick Locale Switcher', // The name displayed to the user (don't include the version)
  4. extShortName: 'qls', // The leafname of the JAR file (without the .jar part)
  5. extVersion: '1.7.0.1',
  6. extAuthor: 'Martijn Kooij',
  7. extLocaleNames: ['en-US', 'nl-NL', 'fr', 'it-IT', 'es-ES', 'de-DE', 'tr-TR', 'ko-KR', 'pl-PL', 'cs-CZ', 'bg-BG', 'pt-PT', 'sl-SI', 'zh-CN', 'sk-SK', 'ru-RU', 'fy-NL', 'zh-TW', 'pt-BR', 'da-DK', 'lt-LT', 'gl-ES', 'sq-AL', 'he-IL', 'en-GB', 'fa-IR', 'km-KH', 'uk-UA', 'hr-HR', 'be-BY', 'el-GR', 'vi-VN', 'ro-RO', 'es-AR', 'hu-HU', 'nb-NO', 'fi-FI', 'ca-AD', 'ar', 'ml-IN', 'wa-BE', 'is-IS', 'mk-MK', 'sr-RS', 'nn-NO', 'eo-EO', 'hsb-DE', 'dsb-DE', 'ja-JP'],
  8. extSkinNames: ['classic'],
  9. extPostInstallMessage: 'Success! Please restart your browser to finish the installation.', // Set to null for no post-install message
  10. profileInstall: true,
  11. silentInstall: false,
  12. install: function()
  13. {
  14.     var jarName = this.extShortName + '.jar';
  15.     var profileDir = Install.getFolder('Profile', 'chrome');
  16.  
  17.     this.parseArguments();
  18.  
  19.     if (File.exists(Install.getFolder(profileDir, jarName)))
  20.     {
  21.         if (!this.silentInstall) Install.alert('Updating existing Profile install of ' + this.extFullName + ' to version ' + this.extVersion + '.');
  22.         this.profileInstall = true;
  23.     }
  24.     else if (!this.silentInstall) this.profileInstall = Install.confirm('Install ' + this.extFullName + ' ' + this.extVersion + ' to your Profile directory (OK) or your Browser directory (Cancel)?');
  25.  
  26.     var dispName = this.extFullName + ' ' + this.extVersion;
  27.     var regName = '/' + this.extAuthor + '/' + this.extShortName;
  28.     Install.initInstall(dispName, regName, this.extVersion);
  29.  
  30.     var installPath;
  31.     if (this.profileInstall) installPath = profileDir;
  32.     else installPath = Install.getFolder('chrome');
  33.  
  34.     Install.addFile(null, 'chrome/' + jarName, installPath, null);
  35.  
  36.     var jarPath = Install.getFolder(installPath, jarName);
  37.     var installType = this.profileInstall ? Install.PROFILE_CHROME : Install.DELAYED_CHROME;
  38.  
  39.     Install.registerChrome(Install.CONTENT | installType, jarPath, 'content/' + this.extShortName + '/');
  40.  
  41.     var iLocale, iLen = this.extLocaleNames.length;
  42.     for (iLocale = 0; iLocale < iLen; iLocale ++)
  43.     {
  44.         var regPath = 'locale/' + this.extLocaleNames[iLocale] + '/';
  45.         Install.registerChrome(Install.LOCALE | installType, jarPath, regPath);
  46.     }
  47.      // Register skins
  48.     var iSkins, iSLen = this.extSkinNames.length;
  49.     for (iSkins = 0; iSkins < iSLen; iSkins ++)
  50.     {
  51.         var regPath = 'skin/' + this.extSkinNames[iSkins] + '/' + this.extShortName + '/';
  52.         Install.registerChrome(Install.SKIN | installType, jarPath, regPath);
  53.     }
  54.  
  55.     var err = Install.performInstall();
  56.     if (err == Install.SUCCESS || err == Install.REBOOT_NEEDED)
  57.     {
  58.         if (!this.silentInstall && this.extPostInstallMessage) Install.alert(this.extPostInstallMessage);
  59.     }
  60.     else return this.handleError(err);
  61. },
  62. parseArguments: function()
  63. {
  64.     var args = Install.arguments;
  65.     if (args == 'p=0')
  66.     {
  67.         this.profileInstall = false;
  68.         this.silentInstall = true;
  69.     }
  70.     else if (args == 'p=1') this.silentInstall = true;
  71. },
  72. handleError: function(err)
  73. {
  74.     if (!this.silentInstall) Install.alert('Error: Could not install ' + this.extFullName + ' ' + this.extVersion + ' (Error code: ' + err + ')');
  75.     Install.cancelInstall(err);
  76. }
  77. };
  78. XpiInstaller.install();
  79.